<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./css/index.css" />
<title>记事本</title>
</head>
<body>

<!-- 主体区域 -->
<section id="app">
  <!-- 输入框 -->
  <header class="header">
    <h1>小黑记事本</h1>
    <!-- 3.任务的添加功能 -->
    <input @keyup.enter="add" placeholder="请输入任务" class="new-todo" v-model="task"/>
    <button class="add" @click="add()">添加任务</button>
  </header>
  <!-- 列表区域 -->
  <section class="main">
    <ul class="todo-list">
      <!-- 1.数据渲染功能 -->
      <li class="todo" v-for="(item, index) in list" :key="item.id">
        <div class="view">
          <span class="index">{{ index + 1 }}.</span> <label>{{ item.content }}</label>
          <!-- 2.单个任务删除功能 -->
          <button class="destroy" v-on:click="del(item.id)"></button>
        </div>
      </li>
    </ul>
  </section>
  <!-- 统计和清空 -> 如果没有任务了，底部隐藏掉 -> v-show -->
  <footer class="footer" v-show="list.length > 0">
    <!-- 统计 -->
    <span class="todo-count">合 计:<strong> {{ list.length }} </strong></span>
    <!-- 清空 -->
    <button class="clear-completed" @click="list = []">
      清空任务
    </button>
  </footer>
</section>

<!-- 底部 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>

  const app = new Vue({
    el: '#app',
    data: {
      list: [
        {id: 1, content: '吃饭'},
        {id: 2, content: '玩游戏'},
      ],
      task: ''
    },
    methods: {
      del(id) {
        // console.log('点击了删除');
        this.list = this.list.filter(item => item.id !== id)
      },
      add() {
        if (!this.task) {
          alert('请输入任务名称')
          return
        }
        this.task = this.task.split(' ').join('')
        // let newId
        // if (this.list.length > 0)
        //   newId = this.list[this.list.length - 1].id + 1
        // else 
        //   newId = 1
        // id设置为时间戳，保证唯一
        // push追加到尾部 unshift，加到前面
        this.list.unshift({id:+new Date(), content: this.task})
        this.task = ''
      }
    }
  })

</script>
</body>
</html>
